/*
 * voe_mixer.h
 *
 *  Created on: Nov 20, 2013
 *      Author: wyf
 */

#ifndef VOE_MIXER_H_
#define VOE_MIXER_H_

#include "common_types.h"

namespace webrtc {

class VoiceEngine;

// VoEMixer
class WEBRTC_DLLEXPORT VoEMixer {
public:

	static VoEMixer* GetInterface(VoiceEngine* voiceEngine);

	virtual int Release() = 0;

	virtual int RegisterStreamout(Streamout& pushout) = 0;

	virtual int DeRegisterStreamout() = 0;

	virtual int setOutSampleRate(int samplerate)=0;

	virtual int getOutSampleRate()=0;

	virtual int setOutChannel(int channel)=0;

	virtual int getOutChannel()=0;

	virtual int InsertIntoMixer(int channel) = 0;

	virtual int DeleteFromMixer(int channel) = 0;

	virtual int StartMix() = 0;

	virtual int StopMix() = 0;

protected:
	VoEMixer() {
	}
	virtual ~VoEMixer() {
	}
};

}
// namespace webrtc

#endif /* VOE_MIXER_H_ */
